=begin

This file is part of the RSIF project, http://rsif.googlecode.com

Copyright (c) 2009-2009 Roberto Dario Seminara <robertodarioseminara@gmail.com>

rsif is free software: you can redistribute it and/or modify
it under the terms of the gnu general public license as published by
the free software foundation, either version 3 of the license, or
(at your option) any later version.

rsif is distributed in the hope that it will be useful,
but without any warranty; without even the implied warranty of
merchantability or fitness for a particular purpose.  see the
gnu general public license for more details.

you should have received a copy of the gnu general public license
along with rsif.  if not, see <http://www.gnu.org/licenses/>.
=end
require "singleton"

module Rsif
module Core
module Modules

class ProvideInfo

  include Singleton

  def initialize
     @providers = Hash.new
     @module_index = Hash.new
  end

  def provide( s, mod )
     @providers[s] = [] if @providers[s] == nil
     prov = @providers[s]
     prov << mod
  end

  def providers( s )
    @providers[s] = [] if @providers[s] == nil
    @providers[s]
  end

  def registry_class_module( name, klass )
	@module_index[name] = klass
  end

  def module_from_name( name )
	@module_index[name]
  end

end

end
end
end

